package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 领取优惠券记录对象 p_ask_coupon_log
 *
 * @author ruoyi
 * @date 2022-07-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("p_ask_coupon_log")
public class PAskCouponLog extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * id
     */
    @TableId(value = "id")
    private Long id;
    /**
     * 优惠券发布id
     */
    @ApiModelProperty(value = "优惠券发布id")
    @NotNull(message = "优惠券发布id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long couponId;
    /**
     * 兑换的项目id
     */
    @ApiModelProperty(value = "兑换的项目id")
    private Long cid;
    /**
     * 领取人id
     */
    @ApiModelProperty(value = "领取人id")
    private Long uid;
    /**
     * 优惠券名称
     */
    @ApiModelProperty(value = "优惠券名称")
    private String name;
    /**
     * 优惠券的面值
     */
    @ApiModelProperty(value = "优惠券的面值")
    private BigDecimal money;
    /**
     * 最低消费多少金额可用优惠券
     */
    @ApiModelProperty(value = "最低消费多少金额可用优惠券")
    private BigDecimal minPrice;
    /**
     * 获取方式，send后台发放, 用户领取 get
     */
    @ApiModelProperty(value = "获取方式，send后台发放, 用户领取 get")
    private String type;
    /**
     * 状态（0：未使用，1：已使用, 2:已失效）
     */
    @ApiModelProperty(value = "状态（0：未使用，1：已使用, 2:已失效）")
    private Integer status;
    /**
     * 开始使用时间
     */
    @ApiModelProperty(value = "开始使用时间")
    private Date startTime;
    /**
     * 过期时间
     */
    @ApiModelProperty(value = "过期时间")
    private Date endTime;
    /**
     * 使用时间
     */
    @ApiModelProperty(value = "使用时间")
    private Date useTime;
    /**
     * 使用类型 0 全场通用, 1 商品券, 2 咨询券
     */
    @ApiModelProperty(value = "使用类型 1 全场通用, 1 商品券, 2 咨询券")
    private String useType;
    /**
     * 订单id
     */
    @ApiModelProperty(value = "主键id 商品id/分类id", required = true)
    private String primaryKey;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;

}
